home *** CD-ROM | disk | FTP | other *** search
/ Aminet 34 / Aminet 34 (2000)(Schatztruhe)[!][Dec 1999].iso / Aminet / util / rexx / Homebanking.lha / Homebanking / ADM.ワberweisung_DM.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1999-05-15  |  12.3 KB  |  305 lines

  1. /*
  2.  *   $VER: ADM.Überweisung_DM.rexx Version 1.0 (01.02.1999) © Frank Seidel
  3.  *   geschrieben und getestet für MultitermKit 5.0
  4.  *   Achtung - damit die Requester auf dem Multitermscreen geöffnet werden
  5.  *   muß der Tooltype "MAKEPUBSCREEN" im Icon eingetragen sein.
  6.  *   Das Programm "WBRun" muß sich im Suchpfad befinden.
  7. */
  8.  
  9. IF ~SHOW(LIBRARIES,'rexxsupport.library') THEN
  10.    IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN
  11.       EXIT 10
  12. IF ~SHOW(LIBRARIES,'rexxreqtools.library') THEN
  13.    IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN
  14.       EXIT 10
  15.  
  16. IF ~SHOW('PORTS','MultiTerm_Btx',) THEN
  17.      address command 'wbrun >NIL: Multiterm:Multiterm'
  18.  
  19. OPTIONS RESULTS
  20. address command 'sys:rexxc/waitforport MultiTerm_Btx'      /* wartet bis Multiterm geladen ist */
  21. ADDRESS 'MultiTerm_Btx'
  22. loadconfig
  23. setjnrequest 0                                             /* unterdrückt den Ja/Nein-Requester*/
  24.  
  25. /* Setzen der Variablen */
  26.  
  27. Seite = '@f8'
  28. EKonto = '@f9'
  29. PIN = '@f7'
  30. BLZ = '@k2'
  31. Konto = '@f4'
  32. Empf = '@df'
  33. Euro = ''
  34. Cent = ''
  35. DM = '@f2'
  36. PF = '@f3'
  37. VZweck1 = '@k5'
  38. VZweck2 = '@k6'
  39. TAN = '@f1'
  40. DELAY(100)
  41.  
  42. 'existstring' "Überweisung"                             /* prüfe ob bereits im Bank-     */
  43. if RC=0 then                                            /* Rechner und springe weiter    */
  44.    call eingelogt
  45.  
  46. IF PIN = 'NICHT GESETZT' THEN
  47.        PIN = rtgetstring(,'Bitte Pin für Konto'||'0A'x|| EKonto ||'0A'x||'eingeben','Abfrage','fertig',,
  48.       'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  49.  
  50. 'checkonline'
  51. IF RC > 0 THEN DO
  52.    'split' 2
  53.    'mplprint' "Wähle T-Online an."
  54.    DELAY(100)
  55.    'split' 0
  56.    'autologin'
  57.    'checkonline'
  58.    IF RC > 0 THEN DO 30
  59.         'checkonline'
  60.         IF RC > 0 THEN
  61.         DELAY(100)
  62.         end
  63.    'checkonline'
  64.    IF RC > 0 THEN do
  65.         'split' 2
  66.         'mplprint' "Anwahl fehlgeschlagen - Abbruch"
  67.          DELAY(100)
  68.          'split' 0
  69.          'exit'
  70.          end
  71. end
  72.  
  73. 'checkonline'
  74.    IF RC = 0 THEN do
  75.    do 600
  76.    DELAY(50)
  77.   'getcury'
  78.    IF RESULT = "24" THEN BREAK
  79.      END
  80.    DELAY(50)
  81. end
  82.  
  83. /********************** ab hier auf andere Banken anpassen *******************************/
  84.  
  85. 'sendini'                                               /* sendet Stern                  */
  86. 'send' Seite                                            /* sendet Seitennummer           */
  87. 'sendter'                                               /* sendet ENTER                  */
  88. call waitcur                                            /* warte auf Cursor              */
  89.  
  90. 'send' "1"                                              /* sende "1"                     */
  91.  
  92. 'send' EKonto                                           /* sende eigene Kontonummer      */
  93. call waitcur                                            /* warte auf Cursor              */
  94.  
  95. 'send' PIN                                              /* sende Kontopin                */
  96. 'sendter'                                               /* sendet ENTER                  */
  97.  
  98. DELAY(50)                                               /* warte 1/2 Sekunde             */
  99.  
  100. 'send' "19"                                             /* sende 19                      */
  101. call waitcur                                            /* warte auf Cursor              */
  102.  
  103. checkER                                                 /* überprüft ob Zugang erfolg-   */
  104.  IF RC > 0 THEN DO                                      /* reich hergestellt wurde und   */
  105.    'split' 2                                            /* beendet Skript, wenn dies     */
  106.    'mplprint' "Bankrechner nicht erreichbar - Abbruch." /* nicht der Fall ist.           */
  107.    DELAY(300)                                           /*                               */
  108.    'split' 0                                            /*                               */
  109.    'exit'                                               /*                               */
  110. end                                                     /*                               */
  111.  
  112. eingelogt:                                              /* Fortsetzung wenn bereits im   */
  113.                                                         /* Bankrechner                   */
  114. 'send' "3"                                              /* sende 3                       */
  115. call waitcur                                            /* warte auf Cursor              */
  116.  
  117. 'send' BLZ                                              /* sende Bankleitzahl            */
  118.   IF LENGTH(BLZ)<8 THEN 'sendter'                       /* wenn Länge kürzer 8 + ENTER   */
  119. call waitcur                                            /* warte auf Cursor              */
  120.  
  121. 'send' Konto                                            /* sende Kontonummer             */
  122.   IF LENGTH(Konto)<10 THEN 'sendter'                    /* wenn Länge kürzer 10 + ENTER  */
  123. call waitcur                                            /* warte auf Cursor              */
  124.  
  125. 'send' Empf                                             /* sende Empfängername           */
  126.   IF LENGTH(Empf)<27 THEN 'sendter'                     /* wenn Länge kürzer 27 + ENTER  */
  127. call waitcur                                            /* warte auf Cursor              */
  128.  
  129. 'send' Euro                                             /* sende Euro-Betrag             */
  130.   IF LENGTH(Euro)<9 THEN 'sendter'                      /* wenn Länge kürzer 9 + ENTER   */
  131. 'send' Cent                                             /* sende Cent-Betrag             */
  132.   IF LENGTH(Cent)<2 THEN 'sendter'                      /* wenn Länge kürzer 2 + ENTER   */
  133.  
  134. 'send' DM                                               /* sende DM-Betrag               */
  135.   IF LENGTH(DM)<9 THEN 'sendter'                        /* wenn Länge kürzer 9 + ENTER   */
  136. 'send' PF                                               /* sende Pfennig-Betrag          */
  137.   IF LENGTH(PF)<2 THEN 'sendter'                        /* wenn Länge kürzer 2 + ENTER   */     
  138.  
  139. 'send' VZweck1                                          /* sende Verwendungszweck 1      */
  140.   IF LENGTH(VZweck1)<27 THEN 'sendter'                  /* wenn Länge kürzer 27 + ENTER  */
  141. 'send' VZweck2                                          /* sende Verwendungszweck 2      */
  142.   IF LENGTH(VZweck2)<27 THEN 'sendter'                  /* wenn Länge kürzer 27 + ENTER  */
  143. call waitcur                                            /* warte auf Cursor              */
  144.  
  145. 'send' TAN                                              /* sende TAN                     */
  146. 'sendter'
  147. call waitcur
  148.  
  149. /****************************** bis hier auf andere Banken anpassen ********************************/
  150. /*  eventuelle Änderungen müssen auch bei der Fehlerbehandlung bei falscher TAN vorgenommen werden */
  151.  
  152. /* 1. TAN-Prüfung */
  153.  
  154. 'existstring' "ungültig"  /* prüfe ob TAN angenommen wurde, Fehlermeldung kann bei anderen  Banken anders lauten   */
  155. if RC=5 then call weiter  /* wenn nötig - "üngültig" anpassen und in nächstem Abschnitt ebenfalls (2.TAN Prüfung)  */
  156. if RC=0 then do                                         /* bei falscher TAN               */
  157.     OPTIONS RESULTS
  158.        call rtezRequest("TAN wurde nicht akzeptiert - bitte neue Tan eingeben","per _Abfragerequester|TAN von _Disk lesen", "Fehler",,
  159.                         'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  160.       if RESULT = 1 THEN do
  161.          TAN1 = rtgetstring(,'Bitte neue TAN eingeben','Abfrage','fertig',,
  162.          'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  163.           call neueTan
  164.           end
  165.       if RESULT = 0 THEN do
  166.            OPTIONS RESULTS
  167.               IF ~EXISTS('TAN:TAN.adm') THEN                         call rtezRequest("kann TAN:TAN.adm nicht finden","_Diskette _eingelegt","Fehler-Hinweis",,
  168.                         'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  169.               IF EXISTS('TAN:TAN.adm') THEN
  170.               line4 = OPEN('TANVAR','TAN:TAN.adm','R')
  171.               line4 = READLN('TANVAR')
  172.               TAN1 = line4
  173.               line4 = Close('TANVAR')
  174.               CALL OPEN out,"ram:ED_temp",write
  175.               CALL WRITELN out, 'd'
  176.               CALL WRITELN out, 'x'
  177.               CALL CLOSE out
  178.               cmd = 'c:ed tan:tan.adm WITH RAM:ED_temp'
  179.               address command cmd
  180.               cmd = 'c:protect TAN:tan.adm swedr'
  181.               address command cmd
  182.               cmd = 'run >NIL: c:delete RAM:ED_Temp'
  183.               address command cmd
  184.               call neueTAN
  185.               end
  186. end
  187.  
  188. neueTAN:
  189.  
  190. 'send' TAN1
  191. 'sendter'
  192. call waitcur
  193.  
  194. /* 2. TAN Prüfung - danach folgt ABBRUCH - sonst wird Konto für BTX gesperrt !!!  */
  195.  
  196. 'existstring' "ungültig"                                /* prüfe ob TAN angenommen wurde */
  197. if RC=0 then do
  198.    'split' 2                                            /* beendet Skript, wenn dies     */
  199.    'mplprint' "TAN wieder falsch - Abbruch."            /* wieder der Fall ist.          */
  200.    DELAY(300)                                           /*                               */
  201.    'split' 0                                            /*                               */
  202.    'exit'                                               /*                               */
  203. end
  204.  
  205.  
  206. /* wenn TAN angenommen gehts hier weiter - eventuell für "erhalten" anderen Bankspezifischen  */
  207. /* String eintragen                                                                           */
  208.  
  209. weiter:
  210. 'existstring' "erhalten"    /* <-- "erhalten" wenn nötig ändern - je nach Bank  */
  211. if RC=0 then do
  212.     'split' 2
  213.     'mplprint' "Schreibe erledigte Überweisung in Multiterm:Text/Ueberweisungen.txt."
  214.     'save Ueberweisungen.txt 0 1'
  215.     DELAY(300)
  216.     'split' 0
  217. end
  218.  
  219. 'send' "0"
  220. call waitcur
  221.  
  222. DELAY(100)
  223. IF EXISTS('ENV:2.Ueberweisung') THEN do
  224.     line2 = OPEN('EDIT','ENV:2.Ueberweisung','R')
  225.     line1 = READLN('EDIT')
  226.     IF LENGTH line1 > 1 THEN
  227.     UebWsg2 = SPACE(line1,0)
  228.     line2 = Close('EDIT')
  229.     call rtezRequest('folgende Überweisung steht noch an'||'0A'x|| UebWsg2,'_starten|_Abbruch','Hinweis',,
  230.             'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  231.     if RESULT = 0 THEN 'exit'
  232.     if RESULT = 1 THEN do
  233.        address command 'run >NIL: sys:rexxc/rx s:üwsg/'UebWsg2
  234.        address command 'delete >NIL: ENV:2.Ueberweisung'
  235.        exit
  236.        END
  237. END
  238.  
  239. IF EXISTS('ENV:3.Ueberweisung') THEN do
  240.     line2 = OPEN('EDIT','ENV:3.Ueberweisung','R')
  241.     line1 = READLN('EDIT')
  242.     IF LENGTH line1 > 1 THEN
  243.     UebWsg3 = SPACE(line1,0)
  244.     line2 = Close('EDIT')
  245.     call rtezRequest('folgende Überweisung steht noch an'||'0A'x|| UebWsg3,'_starten|_Abbruch','Hinweis',,
  246.             'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  247.     if RESULT = 0 THEN 'exit'
  248.     if RESULT = 1 THEN do
  249.        address command 'run >NIL: sys:rexxc/rx s:üwsg/'UebWsg3
  250.        address command 'delete >NIL: ENV:3.Ueberweisung'
  251.        exit
  252.        END
  253. END
  254.  
  255. IF EXISTS('ENV:4.Ueberweisung') THEN do
  256.     line2 = OPEN('EDIT','ENV:4.Ueberweisung','R')
  257.     line1 = READLN('EDIT')
  258.     IF LENGTH line1 > 1 THEN
  259.     UebWsg4 = SPACE(line1,0)
  260.     line2 = Close('EDIT')
  261.     call rtezRequest('folgende Überweisung steht noch an'||'0A'x|| UebWsg4,'_starten|_Abbruch','Hinweis',,
  262.             'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  263.     if RESULT = 0 THEN 'exit'
  264.     if RESULT = 1 THEN do
  265.        address command 'run >NIL: sys:rexxc/rx s:üwsg/'UebWsg4
  266.        address command 'delete >NIL: ENV:4.Ueberweisung'
  267.        exit
  268.        END
  269. END
  270.  
  271. IF EXISTS('ENV:5.Ueberweisung') THEN do
  272.     line2 = OPEN('EDIT','ENV:5.Ueberweisung','R')
  273.     line1 = READLN('EDIT')
  274.     IF LENGTH line1 > 1 THEN
  275.     UebWsg5 = SPACE(line1,0)
  276.     line2 = Close('EDIT')
  277.     call rtezRequest('folgende Überweisung steht noch an'||'0A'x|| UebWsg5,'_starten|_Abbruch','Hinweis',,
  278.             'rt_pubscrname = ''MultiTerm KIT''' 'rt_reqpos = reqpos_centerscr' 'rtez_flags = ezreqf_centertext')
  279.     if RESULT = 0 THEN 'exit'
  280.     if RESULT = 1 THEN do
  281.        address command 'run >NIL: sys:rexxc/rx s:üwsg/'UebWsg5
  282.        address command 'delete >NIL: ENV:5.Ueberweisung'
  283.        exit
  284.        END
  285. END
  286.  
  287. 'send' "9"
  288. call waitcur
  289. DELAY(500)
  290. 'logout'
  291. 'exit'
  292. exit
  293.  
  294. /* warte auf Cursor */
  295. WAITCUR:
  296. DELAY(50)   /* 1/2 Sekunde warten. */
  297. DO 600
  298.    DELAY(50)   /* 1/2 Sekunde warten. */
  299.    'checkcuron'   /* Ist der BTX-Cusor eingeschaltet ? */
  300.    IF RC = 0 THEN RETURN
  301. END
  302. RETURN
  303.  
  304.  
  305.